package com.todo.member.infrastructure.entity.domain;

import lombok.Data;

import java.util.Date;

/**
 * @author azhebuxing
 * @date 2025/2/10 11:19
 * @description
 */
@Data
public class MemberInfoDO {
    /**
     * 主键ID
     */
    private Long id;
    /**
     * 用户ID
     */
    private Long userId;
    /**
     * 当前VIP类型
     */
    private VIPInfoDO vipInfoDO;
    /**
     * 用户等级（冗余字段）
     */
    private String level;
    /**
     * 当前成长值
     */
    private Integer growthCount;
    /**
     * 当前积分
     */
    private Integer pointsCount;
    /**
     * 当前奖励金
     */
    private Integer bonusCount;
    /**
     * 展示的称号
     */
    private MedalInfoDO medalInfoDO;
    /**
     * 逻辑删除标志（0-未删除，1-已删除）
     */
    private Integer isDelete;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;

    @Data
    public static class VIPInfoDO {
        /**
         * 名称
         */
        private String name;

        /**
         * code
         */
        private String vipCode;
        /**
         * code
         */
        private Integer vipVersion;

        /**
         * 描述
         */
        private String desc;

        /**
         * 类型 铁、银、金、钻
         */
        private Integer vipType;
        /**
         * VIP过期时间
         */
        private Date vipExpiredTime;
    }

    @Data
    public static class MedalInfoDO {
        /**
         * 称号code
         */
        private String medalCode;
        /**
         * 标题
         */
        private String title;
        /**
         * 描述
         */
        private String desc;
        /**
         * 称号分类
         */
        private Integer medalClassify;
        /**
         * 佩戴展示图片
         */
        private String carryDisplayImg;
    }
}
